package com.fate.system.dto.org;

import lombok.Data;
import lombok.Getter;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;

import java.io.Serial;
import java.io.Serializable;

import java.util.Date;
import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;

import org.hibernate.validator.constraints.Length;

/**
 * @Author: ten.x @TableName sys_org @Date: 2024-08-09 01:53:43 @Version: V1.0
 */
@Data
@Accessors(chain = true)
@TableName(value = "sys_org")
@EqualsAndHashCode(callSuper = false)
public class OrgAddDTO implements Serializable {

  @Serial
  @TableField(exist = false)
  private static final long serialVersionUID = 1L;

  /** 组织名 */
  @Size(max = 255, message = "编码长度不能超过255")
  @TableField(value = "org_name")
  @Schema(description = "组织名")
  @Length(max = 255, message = "编码长度不能超过255")
  private String orgName;

  /** 父id */
  @Size(max = 64, message = "编码长度不能超过64")
  @TableField(value = "pid")
  @Schema(description = "父id")
  @Length(max = 64, message = "编码长度不能超过64")
  private String pid;

  /** 机构类型 字典org_type 1公司 2子公司 3部门 4小组 */
  @Size(max = 64, message = "编码长度不能超过64")
  @TableField(value = "org_type")
  @Schema(description = "机构类型 字典org_type 1公司 2子公司 3部门 4小组")
  @Length(max = 64, message = "编码长度不能超过64")
  private String orgType;

  /** 机构全称 */
  @Size(max = 255, message = "编码长度不能超过255")
  @TableField(value = "org_full_name")
  @Schema(description = "机构全称")
  @Length(max = 255, message = "编码长度不能超过255")
  private String orgFullName;

  /** 机构代码 */
  @Size(max = 255, message = "编码长度不能超过255")
  @TableField(value = "org_path")
  @Schema(description = "机构代码")
  @Length(max = 255, message = "编码长度不能超过255")
  private String orgPath;

  /** 机构全路径代码 */
  @TableField(value = "org_full_path")
  @Schema(description = "机构全路径代码")
  private String orgFullPath;

  /** 排序 */
  @TableField(value = "order_number")
  @Schema(description = "排序")
  private Integer orderNumber;

  /** 备注 */
  @Size(max = 255, message = "编码长度不能超过255")
  @TableField(value = "remark")
  @Schema(description = "备注")
  @Length(max = 255, message = "编码长度不能超过255")
  private String remark;

  /** 领导id集合 */
  @TableField(value = "leader_ids")
  @Schema(description = "领导id集合")
  private List<String> leaderIds;
}
